$(document).ready(function(){
	
	$(document).keyup(function(e) {
		//alert(e.which);
		//se a tecla pressionada for F2 chama ta tela de divida.
		if(e.which == 113){
			loadPage('listarDivida', 'listarDivida', 'Lista de Lançamentos em Abertos', true, 800, 400);
		}
	});
	
	aluno = null;
	alunoTurma = null;
	var hlr = 0;
	$("#somatoria_1").attr('value','R$ 0,00');
	$("#somatoria_hidden_1").attr('value',0);
	
	var oTable;
	var giRedraw = false;
	
	var linha;
	$("#somatoriaRecebimento").attr('value', 0);
		
	loadToComboBoxUrl("#bancoPagarCheque","bancoses","banco");	
    
	//datepickers
	datePicker("dataRegistro");
    
	//datepickers
	datePicker("dataRegistro");

	$("#lancamento").change(function(event){
		$("#valor").val(lancamento.dataSource[lancamento.selectedIndex-2].valor);
	});		
	
	$("#alunosPesquisaBtn").button({icons: {primary: "ui-icon-search"}, text: false}).click(
	function(){		
		loadPage('listarAluno', 'listarAluno', 'Lista de Alunos', true);
	});
	
	$("#dividaPesquisaBtn").button({icons: {primary: "ui-icon-search"}, text: true}).click(
			function(){		
				loadPage('listarDivida', 'listarDivida', 'Lista de Lançamentos em Abertos', true, 800, 400);
	});

//	//lançamentos
	var id = "lancamentosDataGrid";
	var lancamentosAoColumns = [
	                            			{"sTitle": "Aluno", "mDataProp": "aluno.pessoaAluno.nome", "sWidth": "500px", "bVisible": true, "sDefaultContent":""},
                                        	{"sTitle": "Descrição", "mDataProp": "historico.historico", "sWidth": "300px", "bVisible": true, "sDefaultContent":""},
                                        	{"sTitle": "Vencimento", "mDataProp": "dataVencimento", "sWidth": "20px", "bVisible": true, "sDefaultContent":""},
                                        	{"sTitle": "Situacao", "mDataProp": "situacaoLancamento", "sWidth": "60px", "bVisible": false, "sDefaultContent":""},
											{"sTitle": "Valor", "mDataProp": "valorBase", "sWidth": "20px", "bVisible": true, "sDefaultContent":""},
											{"sTitle": " ", "mDataProp": "htmlControl","bSortable": false, "bVisible": true, "sWidth": "30px","sDefaultContent":"", 
				                 				   "fnRender": function ( oObj ) {	                 						
				                 					  return  "<button type=\"button\" id=\"deletarBtn_"+oObj.aData.id+"\"   class=\"deletarBtn"+id+"\" onclick=\"deletarDaTelaCallBack(event,'"+id+"', reloadLancamentos);\">Deletar</button>";
					                 				}
					                 			}
										];
	oneToMany(id, JSON.stringify(lancamentosAoColumns, function(key, val) {if (typeof val === 'function') { return val + '';} return val;}));

	//recebimentos
	//var id = "recebimentosDataGrid";
	var recebimentosAoColumns = [
                                        	{"sTitle": "Descrição", "mDataProp": "tipoPagamento", "sWidth": "180px", "bVisible": true, "sDefaultContent":""},
											{"sTitle": "Valor", "mDataProp": "valorMovimentacao", "sWidth": "40px", "bVisible": true, "sDefaultContent":""},
											{"sTitle": "", "mDataProp": "", "bSortable": false, "sWidth": "3px", "bVisible": true, "sDefaultContent":""}
										];
	oneToMany("recebimentosDataGrid", JSON.stringify(recebimentosAoColumns));
	
	$('#lancamentosDataGrid tbody').delegate("tr", "click", fnGetSelected);	
	
	$("#btnReceberDinheiro").button({ icons: { primary: "ui-icon ui-icon-star"},text: true});
	$("#btnReceber").button({ icons: { primary: "ui-icon ui-icon-star"},text: true});
	//$("#btnMerito").button({ icons: { primary: "ui-icon ui-icon-heart"},text: true});
	
	//carregar o caixa do usuário.
	loadCaixa();
    
});	

function loadCaixa(){
	//checar se tem caixa aberto.
	$.ajax({
		"type": "GET",
		"contentType": "application/json",
		"url": "caixases?find=ByUsuarioOpen",
		"beforeSend": function(xhr,settings){
						
			$("#"+$("form").attr("id")).validationEngine('hide');
			$("#bg-corpo").block({message: "<img border='0' src='"+"img/ajax-loader.gif"+"'/> &nbsp;Carregando lançamentos em aberto do aluno...",
								 css: { 'border': '0px',
										'background': 'transparent',
										'color': 'white'
								      } 
							});
		},
		"error": trataErro,
		"complete": function(){
			$("#bg-corpo").unblock();
		},
		"success": function(data, textStatus, xhr){
			if(data == ''){
				alert('Não existe caixa aberto para este usuário!\n\nEsta funcionalidade será encerrada.');
				divObj = $('#recebimentoAluno');
				divObj.dialog("close");
				divObj.remove();
			}else{
				$("#abertura").attr('value', data[0].dataAbertura);
			}
		}
	 });	
}

function abreDesconto(event){
	var divObj;
	var clickedTr = $(event.target).parent("td").parent("tr").get(0);
	var aTrs = $('#lancamentosDataGrid').dataTable().fnSettings().aoData;
	var objetoSelecionado;
	for(var i=0; i < aTrs.length; i++){
		if(aTrs[i].nTr==clickedTr){
			objetoSelecionado = aTrs[i]._aData;
			$("#dadoAlterado").attr('value', objetoSelecionado.id);
			$("#valorDesconto").attr('value', objetoSelecionado.desconto);
			$("#valorBase").attr('value', objetoSelecionado.valorBase);
			$('#valorPagar').attr('value', (parseFloat(objetoSelecionado.valorBase) - parseFloat(objetoSelecionado.desconto)));
			i = aTrs.length;
		}
	}
	
	divObj = $('#descontoLancamento').dialog();
	divObj.dialog("destroy");
	divObj.dialog({autoOpen:false, closeOnEscape: true, resizable:true, width: 400, modal: true, close: function(ev, ui) { $(this).remove(); },});            
	divObj.dialog("option","Descontos do lançamento do aluno: " + objetoSelecionado.aluno.pessoaAluno.nome, "decontoLancamento");
	divObj.show();
	divObj.dialog("open");
	
}

function imprimirDesconto(){
	
	var total = parseFloat($('#valorBase').val()) - parseFloat($('#valorDesconto').val());
	
	$('#valorPagar').attr('value', 'R$ '+total);
	
	//atualizar o datagrid
    var aTrsDes = $('#itensDataGrid').dataTable().fnSettings().aoData;
	var retorno = new Array();
    var objetoSelecionado;
    var totalDivida = 0;
  	for ( var i=0 ; i<aTrsDes.length ; i++ )
  	{
  		objetoSelecionado = aTrsDes[i]._aData;
  		if($('#dadoAlterado').val() == objetoSelecionado.id){
  			objetoSelecionado.valorPago = total;
  			objetoSelecionado.desconto = parseFloat($('#valorDesconto').val());
  		}
  		retorno[i] = objetoSelecionado;
  		totalDivida+= objetoSelecionado.valorPago;
  	}
  	$("#itensDataGrid").dataTable().fnClearTable();
  	$("#itensDataGrid").dataTable().fnAddData(retorno);
  	
	$('#valorDesconto').attr('value', '');
	$('#valorPagar').attr('value', '');
	$('#valorBase').attr('value', '');	
	$('#somatoriaRecebimento').attr('value', totalDivida);
	
}

function fnGetSelected()
{
        var aReturn = new Array();
        var aTrs = $('#lancamentosDataGrid').dataTable().fnGetNodes();
        var aTrsD = $('#lancamentosDataGrid').dataTable().fnSettings().aoData;
        var objetoSelecionado;
        $("#negociacoesDataGrid").dataTable().fnClearTable();
        $('#somatoria_1').attr('value', 0);
        $('#somatoria_hidden_1').attr('value', 0);
      	for ( var i=0 ; i<aTrs.length ; i++ )
      	{
      		if ( $(aTrs[i]).hasClass('row_selected') )
      		{
      			objetoSelecionado = aTrsD[i]._aData;
      			objetoSelecionado.valorPago = float2moeada(parseFloat(objetoSelecionado.valorBase));
      			//adicionar em nova data grid.
      			$('#somatoria_hidden_1').attr('value', parseInt($('#somatoria_hidden_1').val())+parseInt(objetoSelecionado.valorBase));
      			$('#somatoria_1').attr('value', 'R$ '+$('#somatoria_hidden_1').val());
      			$("#negociacoesDataGrid").dataTable().fnAddData(objetoSelecionado);
      		}
      	}
      	//return aReturn;   
}

function fnGetLancamentos(event)
{
//        var aReturn = new Array();
        var aTrs = $('#dividaDataGrid').dataTable().fnGetNodes();
        var aTrsD = $('#dividaDataGrid').dataTable().fnSettings().aoData;
        var objetoSelecionado;
//        $("#negociacoesDataGrid").dataTable().fnClearTable();
//        $('#somatoria_1').attr('value', 0);
//        $('#somatoria_hidden_1').attr('value', 0);
      	for ( var i=0 ; i<aTrs.length ; i++ )
      	{
      		if ( $(aTrs[i]).hasClass('row_selected') )
      		{
      			objetoSelecionado = aTrsD[i]._aData;
      			objetoSelecionado.valorPago = 'R$ '+objetoSelecionado.valorBase;
      			objetoSelecionado.aluno = aluno;
      			//adicionar em nova data grid.
      			$('#somatoria_hidden_1').attr('value', parseInt($('#somatoria_hidden_1').val())+parseInt(objetoSelecionado.valorBase));
      			$('#somatoria_1').attr('value', 'R$ '+$('#somatoria_hidden_1').val());
      			$("#lancamentosDataGrid").dataTable().fnAddData(objetoSelecionado);
      		}
      	}
    	divObj = $('#listarDivida');
    	divObj.html("");
    	divObj.dialog("close");
    	divObj.remove();
      	//return aReturn;   
}

function abreRecebimento(){
  	loadPage('pagamentoAluno', 'pagamentoAluno', 'Recebimento dos Lançamentos', true);
}

function rowClick(event){
	   if (hlr)
		   $("td:first", hlr).parent().children().each(function(){$(this).removeClass('markrow');});
		   hlr = this;
		   $("td:first", this).parent().children().each(function(){$(this).addClass('markrow');});

		   // You can pull the values out of the row here if required
		   var a = $("td:first", this).text();
		   var b = $("td:eq(3)", this).text();
		   //if($("tr", hlr).tableTools.fnIsSelected()){
			   $("#somatoria_1").attr('value',parseInt($("#somatoria_1").val())+parseInt(b));
//		   }else{
//			   $("#somatoria_1").attr('value',parseInt($("#somatoria_1").val())-parseInt(b));
//		   }
		   
		   alert("One = "+a+", Two = "+b);
}

function carregaLancamentos(){
	
//	$.ajax({
//		"type": "GET",
//		"contentType": "application/json",
//		"url": "lancamentosalunoses?find=ByAlunoAberto&aluno="+aluno.id,
//		"beforeSend": function(xhr,settings){
//						
//			$("#"+$("form").attr("id")).validationEngine('hide');
//			$("#bg-corpo").block({message: "<img border='0' src='"+"img/ajax-loader.gif"+"'/> &nbsp;Carregando lançamentos em aberto do aluno...",
//								 css: { 'border': '0px',
//										'background': 'transparent',
//										'color': 'white'
//								      } 
//							});
//		},
//		"error": trataErro,
//		"complete": function(){
//			$("#bg-corpo").unblock();
//		},
//		"success": function(data, textStatus, xhr){
//			$("#lancamentosDataGrid").dataTable().fnAddData(data);
//		}
//	 });	
}

function receberDinheiro(){
	
	$.ajax({
		"type": "GET",
		"contentType": "application/json",
		"url": "lancamentosalunoses?find=ByAlunoAberto&aluno="+aluno.id,
		"beforeSend": function(xhr,settings){
						
			$("#"+$("form").attr("id")).validationEngine('hide');
			$("#bg-corpo").block({message: "<img border='0' src='"+"img/ajax-loader.gif"+"'/> &nbsp;Carregando lançamentos em aberto do aluno...",
								 css: { 'border': '0px',
										'background': 'transparent',
										'color': 'white'
								      } 
							});
		},
		"error": trataErro,
		"complete": function(){
			$("#bg-corpo").unblock();
		},
		"success": function(data, textStatus, xhr){
			$("#lancamentosDataGrid").dataTable().fnAddData(data);
		}
	 });	
}

function action(pagina){
	//preparar o registro
	var clickedTr = $(event.target).parent("td").parent("tr").get(0);
	var aTrs = $('#lancamentosDataGrid').dataTable().fnSettings().aoData;
	var objetoSelecionado;
	for(var i=0; i < aTrs.length; i++){
		if(aTrs[i].nTr==clickedTr){
			objetoSelecionado[i] = aTrs[i]._aData;
			alert(objetoSelecionado[i].id);
		}
	}
}

function salvaPagamentoDinheiro(){
    registro = $("#recebimento").formParams(false);
//	delete registro.tipoPagamento;
//	delete registro.valorMovimentacaoDinheiro;
//	delete registro.valorMovimentacaoCartao;
//	delete registro.bancoPagarCheque;
//	delete registro.agenciaPagarCheque;
//	delete registro.contaPagarCheque;
//	delete registro.valorMovimentacaoCheque;
//	delete registro.dadoAlterado;
//	delete registro.valorBase;
	registro.negociacaoLancamentosAlunos = serializarDataGrid("lancamentosDataGrid");
	//montar array do pagamento
	linha = {
            'tipoPagamento' : 'Dinheiro',
        'valorMovimentacao' : $("#somatoria_hidden_1").val(),
                   'cheque' : null
     };
	$("#itemDataGrid").dataTable().fnAddData(linha);
	registro.negociacaoMovimentacaoCaixas = serializarDataGrid("itenDataGrid");
	registro.valorSomatorio = $("#somatoria_hidden_1").val();
	registro.valorRestante = 0.00;
	registro.totalNegociacao = $("#somatoria_hidden_1").val();
	registro.descontoReais = 0.00;
	registro.totalNegociacaoPagar = $("#somatoria_hidden_1").val(); 
	var movimentos = linha;
	for(var i in movimentos){
		movimentos[i].valorMovimentacao = movimentos[i].valorMovimentacao;
	}
	var lancamentos = registro.negociacaoLancamentosAlunos;
	for(var i in lancamentos){
		lancamentos[i].valorPago = lancamentos[i].valorBase;
	}
//	registro.negociacaoMovimentacaoCaixas = movimentos;
	registro.negociacaoLancamentosAlunos = lancamentos;
	salvarReturn("pagamento", "negociacoeses", registro, reiniciaRecebimentoDinheiro);		
}

function reiniciaRecebimentoDinheiro(){
	//preparando variaveis para impressão do comprovante
	var lancamentosBaixados = new Array();
	var recebimentoLancados = new Array();
	var totalNegociacao = $("#totalNegociacao").val();
	var descontoReais = $("#descontoReais").val();
	var valorSomatorio = $("#valorSomatorio").val();
	
	//inserir if para ver se foi impresso.
	
	$("#lancamentosDataGrid").dataTable().fnClearTable();
		
}

//fazer função de imprimir aqui.
